1. Field of the Invention
The present invention relates generally to specifying and executing computing tasks in a preboot execution environment, and specifically to generalized imaging or computing tasks utilizing a language agent and one or more specifications.
2. Description of the Related Art
Network-based computing has been gaining popularity in recent years as a more desirable approach to managing enterprise computing needs. Ranging from network-managed PCs, network computers, and thin-clients, network-based computing is largely motivated by the need to reduce the cost of providing IT services (known as the Total Cost of Ownership, TCO) in networked computing environments. It is well known in the industry that the most expensive part of providing computing resources to end-users is not the cost of the computing hardware and software but the cost of on-going maintenance and management. See, Thin Client Benefits, Newburn Consulting (2002); Total Cost of Application Ownership, The Tolly Group Whitepaper (1999); TCO Analyst: A White Paper on GartnerGroup's Next Generation Total Cost of Ownership Methodology, GartnerConsulting (1997). According to the well known studies, network-based computing approach dramatically reduces the TCO by centralizing the maintenance and management functions of IT services, thereby reducing the recurring cost of on-going maintenance and management.
A key component of network-based computing is Remote Imaging, that is, installing images on client computers from centrally managed image servers. Remote Imaging is also synonymous to or closely related to Remote Image Installation and Remote Device Management. The basic idea is that centralized maintenance and management of client computers is accomplished by installing or delivering operating system or application images from a centrally managed servers. Existing technologies such as Microsoft Remote Installation Service, Symantec Ghost, and Rapport Device Management, all provide a method of remote imaging.
For remote imaging of operating system components, remote imaging operation is usually initiated during a preboot phase. In other words, it is desirable to transfer operating system images to the client computer before it boots so that the client computer boots with the newly installed operating system images or components. Clearly, this preboot phase is the most critical aspect of remote imaging, as the client computer will not function properly at all if wrong operating system image or components were delivered.
In a network with significant number of client computers or devices, the preboot phase of remote imaging presents special challenges due to numerous types of devices or computers that need to be managed. For example, the types of machines and corresponding images or components must be ascertained during the preboot phase where none of the typical operating system utilities or application tools are available. Ideally, what is needed is a tool that runs at the client computers during preboot because the client machine is the best place to ascertain what hardware it has and what operating system and software it needs. Furthermore, a maximum flexibility would be afforded by a generalized specification language for specifying and executing computing tasks during the preboot phase. Although preboot imaging and operating system installation is a complex process, much of the process can be parameterized at some abstract level. For example, installation of device drivers, often the most challenging part of installation, can be parameterized as: if X device is found, install Y device driver file. Moreover, overall scheme of operation of remote imaging may be quite similar for many types of devices, e.g., downloading bootstrap code, OS kernel, device drivers, system DLLs, etc. Thus, such operation can be parameterized if the unknown parameters are resolved at the client side by the client devices during execution of remote imaging operations. However, no vendor currently provides a generalized specification language for the preboot execution environment.
Without a generalized specification language for the preboot execution environment, the specification and management of images and components at the central image server is a highly complex process with many inherent risks. The device type of the clients must be ascertained beforehand, and images and components must be prepared for each device types within which all devices must have identical hardware. Then, the client device type must be verified when the images and components are delivered to the client devices. The complexities and difficulties of this process is mainly attributable to information mismatch—that is, trying to manage at the server side operations which critically depends on information at the client side. Thus, a generalized specification language for the preboot execution environment which runs at the client machines will also greatly simplify the management functions at the central server. Instead of complex scripts and programs to prepare images and components, all that is needed is a simple specification that provides: if x, y, z hardware or configuration is found, perform X, Y, Z tasks.
It can be seen, then, there is a need in the field for a system and a method for specifying and executing imaging tasks in a preboot execution environment.